Field of the Invention
The present invention relates to content delivery and construction and more particularly to selective delivery and construction of content based upon host device and server connectivity characteristics.
Description of the Related Art
The advent of the Internet and the World Wide Web (the “Web”) has created a massive new transport mechanism over which vast volumes of content can be delivered from a content provider to a content consumer. Initially limited to simplistic, static textual documents, the Web now transports terabytes of complex, dynamic multimedia including audio, video and imagery over incredible distances for the selective consumption of requesting end users. Indeed, complex content may be consumed today not only within the context of a conventional Web browser executing in a traditional personal computer, but also within the mobile context of smart phones, tablet computers, wearable computers, and even vehicle consoles including automobiles and airplanes. Content is also no longer just static but rather content often is assembled “on-the-fly” by content servers that generate dynamic data driven views along with content aggregated from distributed computing resources in response to user query parameters and their profile preferences. This complexity has only increased over time as users have come to expect more personalized information, which has resulted in overloaded content servers, network transport infrastructure and host devices.
Of note, part of the end user experience in consuming content depends upon the way in which the content is rendered for viewing by the host device of the end user. In a world of only Web browsers executing in personal computers, all content can be delivered in the same way in order to assure a similar if not identical viewing experience for all end users irrespective of the type of Web browser or type of personal computer. However, in a world of mobile computing, content is rendered differently depending upon the physical display characteristics of each host device in which the same content is rendered. As such, modern content servers identify the nature of the device from which a content request is received and selectively returns content visually tailored specifically to the identified device type. For example, robust content intended for display in a Web browser of a personal computer will render poorly in the limited display of a mobile device. Thus, upon detecting a mobile device in connection with a request for content, limited content formatted consistently with the display capabilities of a mobile device is provided to the requesting mobile device in lieu of the content intended for display in a personal computer.
Largely, the quality and subsequent value the end user experiences while consuming content depends not only upon the nature of the content and the way in which the content is displayed consistent with the characteristics of the host device, but also the speed in which the content is rendered in the host device for presentation to the end user. But, the speed by which content is rendered for presentation to the end user depends upon many unknown factors dependent on the utilization of underlying computing resources of the host device and the network throughput between the host device and content source. Of course, the utilization of fixed computing resources of the host device can vary, for example multitasking impinging CPU and memory allocation, thus varying the speed in which content is rendered in the host device. Additionally, the network transport infrastructure connecting the host to the client is by its nature variable and unreliable especially in a mobile context as the host device moves from local area networks to wireless LANs to cellular data networks. And finally, the execution capacity of the content server can vary content delivery speed due to utilization demand, scaling capability and distributed computing resource availability.
Thus, knowing a priori the speed at which content will ultimately be rendered when delivered to a host device is difficult. Statically choosing to deliver simplistic content based on host device physical characteristics in order to accommodate slower rendering speeds is a solution only to the extent that the host device consistently suffers from poor performance. But in the event that the host device is able to perform adequately, delivering simplistic content is wasteful and prejudices the content experience of the end user. It follows then that knowing a priori whether or not the experience of the end user consuming content will be adequate also is difficult and at best results in the prejudicing of the end user in consuming content from a host device occasionally associated with sub-standard performance. Conversely, statically choosing to always deliver complex content to highly capable host devices can result in a poor user experience if the network does not provide sufficient throughput. Always generating the most complex content for these highly capable hosts can lead to content server sluggishness or expensive virtual computing environment scaling even as the user does not consume much of this rich content.